package com.seanLab.tool.TagSuggestModel;

import com.seanLab.domain.TagInfo;
import com.seanLab.dto.RecommendArticleDto;
import com.seanLab.dto.SuggestArticleKeywordsDto;
import com.seanLab.dto.SuggestModelArticleDto;
import com.seanLab.dto.SuggestModelImageDto;

import java.util.List;

public abstract class TagSuggestModel {
    protected RawInfoExtractor rawInfoExtractor;
    protected FeatureExtractor featureExtractor;
    protected ModelKernel modelKernel;

    public abstract String trainModel(List<SuggestModelArticleDto> articles);

    public abstract boolean loadModel(String modelPath);

    public abstract List<SuggestArticleKeywordsDto> suggestTagOfArticle(RecommendArticleDto article);

    public abstract List<List<TagInfo>> suggestTagOfImagedArticle(SuggestModelArticleDto article, List<SuggestModelImageDto> imageList);
}
